package service

import (
	"RocFamilySystem/internal/repository"
	"RocFamilySystem/models"
)

type GeneratorTemplateService struct {
	GeneratorTemplateRepository *repository.GeneratorTemplateRepository
}

// 初始化
func init() {
	registerContainer["GeneratorTemplateService"] = &GeneratorTemplateService{}
}

// SetRepository 设置持久层
func (service *GeneratorTemplateService) SetRepository(sysGeneratorTemplateRepository *repository.GeneratorTemplateRepository) {
	service.GeneratorTemplateRepository = sysGeneratorTemplateRepository
}

// AddGeneratorTemplate 添加生成模板
func (service *GeneratorTemplateService) AddGeneratorTemplate(sysGeneratorTemplate *models.GeneratorTemplate) {
	service.GeneratorTemplateRepository.InsertGeneratorTemplate(sysGeneratorTemplate)
}

// RemoveGeneratorTemplate 删除生成模板
func (service *GeneratorTemplateService) RemoveGeneratorTemplate(sysGeneratorTemplateId int) {
	service.GeneratorTemplateRepository.DeleteGeneratorTemplate(sysGeneratorTemplateId)
}

// ModifyGeneratorTemplate 修改生成模板
func (service *GeneratorTemplateService) ModifyGeneratorTemplate(sysGeneratorTemplate *models.GeneratorTemplate) {
	service.GeneratorTemplateRepository.UpdateGeneratorTemplate(sysGeneratorTemplate)
}

// QueryGeneratorTemplate 查询生成模板
func (service *GeneratorTemplateService) QueryGeneratorTemplate(sysGeneratorTemplate *models.GeneratorTemplate, pageNum, pageSize int) PageInfo {
	templates, total := service.GeneratorTemplateRepository.SelectGeneratorTemplate(sysGeneratorTemplate, pageNum, pageSize)
	return toPageInfo(pageNum, pageSize, total, templates)
}

// QueryGeneratorTemplateById 通过ID查询生成模板
func (service *GeneratorTemplateService) QueryGeneratorTemplateById(id int) models.GeneratorTemplate {
	return service.GeneratorTemplateRepository.SelectGeneratorTemplateById(id)
}
